home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / spritemove.lha / Sprite.S
Text File  |  1989-03-06  |  4KB  |  182 lines

  1. ; *** Sprite Mover ***
  2. ; (C)1988 by Brian Postma
  3. ; J.v.Hartenstraat 51
  4. ; 7576 VX Oldenzaal (NL)
  5. ; Tel:05410-14763
  6.  
  7. execbase = 4  ; Exec Offsets
  8. waitport = -384
  9. permit = -138
  10. forbid = -132
  11. openlibrary = -408
  12. closelibrary = -414
  13.  
  14. openscreen = -198   ; Intuition Offsets
  15. closescreen = -66
  16. openwindow = -204
  17. closewindow = -72
  18. drawimage = -114
  19.  
  20. move = -240   ; Graphics Offsets
  21. draw = -246
  22. rectfill = -306
  23. loadrbg4 = -192
  24. movesprite = -426
  25. freesprite = -414
  26.  
  27. output = -60  ; Dos Offsets
  28. write = -48 
  29.  
  30. start:
  31.  bsr        openstuff
  32.  bsr        action
  33.  bsr        closestuff
  34.  rts
  35.  
  36. openstuff:
  37.  move.l        execbase,a6
  38.  lea        intname,a1
  39.  jsr        openlibrary(a6)
  40.  move.l        d0,intbase
  41.  lea        gfxname,a1
  42.  jsr        openlibrary(a6)
  43.  move.l        d0,gfxbase
  44.  move.l        intbase,a6
  45.  lea        osargs,a0
  46.  jsr        openscreen(a6)
  47.  move.l        d0,screenbase
  48.  add.l        #44,d0    ; Screenbase+44 is Viewport
  49.  move.l        d0,viewport
  50.  add.l        #40,d0     ; Screenbase+84 is Rastport
  51.  move.l        d0,rastport
  52.  rts
  53.  
  54. closestuff:
  55.  move.l        gfxbase,a6
  56.  move.l        #1,d0
  57.  jsr        freesprite(a6)
  58.  move.l        intbase,a6
  59.  move.l        screenbase,a0
  60.  jsr        closescreen(a6)
  61.  move.l        execbase,a6
  62.  move.l        gfxbase,a1
  63.  jsr        closelibrary(a6)
  64.  move.l        intbase,a1
  65.  jsr        closelibrary(a6)
  66.  rts
  67.  
  68. action:
  69.  move.l        gfxbase,a6    
  70.  move.l        viewport,a0
  71.  lea        colors,a1    ; Pointer op KleurData
  72.  move.l        #32,d0        ; Aantal Kleuren
  73.  jsr        loadrbg4(a6)    ; Zet nieuwe kleuren
  74. moveit:
  75.  move.l        gfxbase,a6
  76.  move.l        x,d0
  77.  move.l        y,d1
  78.  lea        simplesprite,a1
  79.  move.l        viewport,a0
  80.  jsr        movesprite(a6)
  81.  bsr        joystick
  82.  move.l        #1000,d0
  83. delay:
  84.  btst        #6,$bfe001
  85.  beq        skip2
  86.  dbra        d0,delay
  87.  add.l        d6,x
  88.  add.l        d7,y
  89.  bra        moveit
  90. skip2:
  91.  rts
  92.  
  93. joystick:
  94.  clr.l        d6
  95.  clr.l        d7
  96.  clr.w        $dff036
  97.  move.b        $dff00d,d1
  98.  move.b        d1,d2
  99.  lsr.b        #1,d2
  100.  eor.b        d1,d2
  101.  btst        #0,d2
  102.  beq        notdown
  103.  cmp.l        #240,y
  104.  beq        notdown
  105.  move.l        #1,d7
  106. notdown:
  107.  btst        #1,$dff00d
  108.  beq        notright
  109.  cmp.l        #304,x
  110.  beq        notright
  111.  move.l        #1,d6  
  112. notright:
  113.  move.b        $dff00c,d1
  114.  move.b        d1,d2
  115.  lsr.b        #1,d2
  116.  eor.b        d1,d2
  117.  btst        #0,d2
  118.  beq        notup
  119.  cmp.l        #16,y
  120.  beq        notup
  121.  move.l        #-1,d7
  122. notup:
  123.  btst        #1,$dff00c
  124.  beq        notleft
  125.  cmp.l        #0,x
  126.  beq        notleft
  127.  move.l        #-1,d6
  128. notleft:
  129.  rts
  130.  
  131. titel: dc.b "Brian Postma",0
  132. intname: dc.b "intuition.library",0
  133. gfxname: dc.b "graphics.library",0
  134. even
  135. x: dc.l 150
  136. y: dc.l 50
  137. screenbase: dc.l 0
  138. rastport: dc.l 0
  139. viewport: dc.l 0
  140. intbase: dc.l 0
  141. gfxbase: dc.l 0
  142. osargs: 
  143.  dc.w    0,0    ; X,Y Offset
  144.  dc.w    320,256    ; Breedte,hooghte
  145.  dc.w    2    ; Diepte (Aantal Planes)
  146.  dc.b    0,1    ; DetailPen,Blockpen
  147.  dc.w    2    ; Viewmode
  148.  dc.w    15    ; Screentyp (15=CustomScreen)
  149.  dc.l    0    ; Font
  150.  dc.l    titel    ; Titel
  151.  dc.l    0,0    ; Gadgets,Bitmap
  152. colors:
  153.  dc.w   0,$0fff,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  154.  dc.w    $0000,$007f,$0038,$0014,0,0,0,0,0,0,0,0,0,0,0,0
  155.  
  156. simplesprite:
  157.  dc.l    data    ; Pointer op SpriteData
  158.  dc.w    16    ; Hoogte
  159.  dc.w    0,0    ; X,Y Pos
  160.  dc.w    1    ; Sprite Nummer (0-7)
  161.  
  162. data:
  163.  dc.w    0,0    ; Altijd met 0,0 beginnen
  164.  dc.w    %1111111111111111,%0000000000000001
  165.  dc.w    %1100000000000011,%0011111111111111
  166.  dc.w    %1100000000000011,%0011111111111111
  167.  dc.w    %1100000000000011,%0011111111111111
  168.  dc.w    %1100000000000011,%0011111111111111
  169.  dc.w    %1100000000000011,%0011111111111111
  170.  dc.w    %1100000000000011,%0011111111111111
  171.  dc.w    %1100000000000011,%0011111111111111
  172.  dc.w    %1100000000000011,%0011111111111111
  173.  dc.w    %1100000000000011,%0011111111111111
  174.  dc.w    %1100000000000011,%0011111111111111
  175.  dc.w    %1100000000000011,%0011111111111111
  176.  dc.w    %1100000000000011,%0011111111111111
  177.  dc.w    %1100000000000011,%0011111111111111
  178.  dc.w    %1100000000000011,%0011111111111111
  179.  dc.w    %1111111111111111,%0111111111111111
  180.  dc.w   0,0    ; En eindigen
  181.  
  182.